package com.joven.shelltest.utils.pdf;

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.joven.shelltest.dto.*;

import java.io.FileNotFoundException;

/**
 * @author joven_wong
 * 2023/10/8 21:13
 */
public class PdfTest3 {
    public static void main(String[] args) throws FileNotFoundException, DocumentException, IllegalAccessException {

        TitleDto testDto = new TitleDto();
        String str = String.format("010022516%n %n家庭户");
        testDto.setRowA(str);
        testDto.setRowB("常驻人口登记卡");
        testDto.setRowC("城关派出所");

        Test4Dto testDto2 = new Test4Dto();
        testDto2.setRowA("姓       名");
        testDto2.setRowB("张三");
        testDto2.setRowC("户主或与户主关系");
        testDto2.setRowD("户主");

        Test4Dto testDto3 = new Test4Dto();
        testDto3.setRowA("曾   用   名");
        testDto3.setRowB("张麻子");
        testDto3.setRowC("性      别");
        testDto3.setRowD("男");

        Test4Dto testDto8 = new Test4Dto();
        testDto8.setRowA("出   生   地");
        testDto8.setRowB("常山县天马街道东淤油榨弄8号");
        testDto8.setRowC("民      族");
        testDto8.setRowD("汉族");

        Test4Dto testDto9 = new Test4Dto();
        testDto9.setRowA("籍       贯");
        testDto9.setRowB("常山");
        testDto9.setRowC("出 生 日 期");
        testDto9.setRowD("1995 年 11 月 26 日");

        Test4Dto testDto10 = new Test4Dto();
        testDto10.setRowA("本市（县）其他地址");
        testDto10.setRowB("衢州柯城区白云街道衢州公馆宸园");
        testDto10.setRowC("宗 教 信 仰");
        testDto10.setRowD("无");

        Test6Dto testDto4 = new Test6Dto();
        testDto4.setRowA("公民身份证编号");
        testDto4.setRowB("330802199511264618");
        testDto4.setRowC("身  高");
        testDto4.setRowD("170 cm");
        testDto4.setRowE("血  型");
        testDto4.setRowF("O 型");

        Test6Dto testDto5 = new Test6Dto();
        testDto5.setRowA("文化程度");
        testDto5.setRowB("本科");
        testDto5.setRowC("婚姻状况");
        testDto5.setRowD("未婚");
        testDto5.setRowE("兵役状况");
        testDto5.setRowF("无");

        TestDto testDto6 = new TestDto();
        testDto6.setTitle("何 时 由 何 地 迁 来 本 市 （县）");
        testDto6.setValue("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

        TestDto testDto7 = new TestDto();
        testDto7.setTitle("何 时 由 何 地 迁 来 本 址");
        testDto7.setValue("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

        TestOneDto testDto11 = new TestOneDto();
        testDto11.setValue(" ");

        PdfBuilder.builder("D:\\image\\test21.pdf")
                .table(PdfTableBuilder.specialBuilder(3, 560)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().buildSpecial(null, null), testDto)
                        .build())
                .table(PdfTableBuilder.builder(4, 560, new float[]{100, 180, 100, 180})
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto2)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto3)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto8)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto9)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto10)
                        .build())
                .table(PdfTableBuilder.builder(6, 560, new float[]{100, 180, 70, 70, 70, 70})
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto4)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto5)
                        .build())
                .table(PdfTableBuilder.builder(1, 560, new float[]{560})
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto11)
                        .build())
                .table(PdfTableBuilder.builder(2, 560, new float[]{100, 460})
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto6)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().build(Element.ALIGN_LEFT, null), testDto7)
                        .build())
                .build();

    }
}
